package com.ruoyi.zhgd.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 派车信息业务对象 collect_product
 *
 * @author yhy
 * @date 2023-09-19
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class CollectProductBo extends BaseEntity {

    /**
     *
     */
    @NotNull(message = "不能为空", groups = { EditGroup.class })
    private Long pkId;

    /**
     * 主键
     */
    @NotNull(message = "主键不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long id;

    /**
     * 数据类型
     */
    @NotBlank(message = "数据类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String type;

    /**
     * 数据源类型，如:XM、欣盟；BS、博硕
     */
    @NotBlank(message = "数据源类型，如:XM、欣盟；BS、博硕不能为空", groups = { AddGroup.class, EditGroup.class })
    private String sourceType;

    /**
     * 拌合站编号
     */
    @NotBlank(message = "拌合站编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stationCode;

    /**
     * 推送时间
     */
    @NotNull(message = "推送时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date sendTime;

    /**
     * Erp端ID
     */
    @NotNull(message = "Erp端ID不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long erpId;

    /**
     * 生产序号
     */
    @NotBlank(message = "生产序号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String mark;

    /**
     * 任务单编号
     */
    @NotBlank(message = "任务单编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String code;

    /**
     * 创建日期
     */
    @NotNull(message = "创建日期不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date datTim;

    /**
     * 任务性质
     */
    @NotBlank(message = "任务性质不能为空", groups = { AddGroup.class, EditGroup.class })
    private String attribute;

    /**
     * 合同信息
     */
    @NotBlank(message = "合同信息不能为空", groups = { AddGroup.class, EditGroup.class })
    private String contract;

    /**
     * 客户名称
     */
    @NotBlank(message = "客户名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String customer;

    /**
     * 工程名称
     */
    @NotBlank(message = "工程名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projName;

    /**
     * 工程类别
     */
    @NotBlank(message = "工程类别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projType;

    /**
     * 工程级别
     */
    @NotBlank(message = "工程级别不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projGrade;

    /**
     * 开工面积
     */
    @NotNull(message = "开工面积不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long projArea;

    /**
     * 施工地址
     */
    @NotBlank(message = "施工地址不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projAdr;

    /**
     * 运输距离
     */
    @NotBlank(message = "运输距离不能为空", groups = { AddGroup.class, EditGroup.class })
    private String distance;

    /**
     * 施工部位
     */
    @NotBlank(message = "施工部位不能为空", groups = { AddGroup.class, EditGroup.class })
    private String consPos;

    /**
     * 浇筑方式
     */
    @NotBlank(message = "浇筑方式不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pour;

    /**
     * 产品种类
     */
    @NotBlank(message = "产品种类不能为空", groups = { AddGroup.class, EditGroup.class })
    private String variety;

    /**
     * 强度等级
     */
    @NotBlank(message = "强度等级不能为空", groups = { AddGroup.class, EditGroup.class })
    private String betLev;

    /**
     * 抗渗等级
     */
    @NotBlank(message = "抗渗等级不能为空", groups = { AddGroup.class, EditGroup.class })
    private String filter;

    /**
     * 抗冻等级
     */
    @NotBlank(message = "抗冻等级不能为空", groups = { AddGroup.class, EditGroup.class })
    private String freeze;

    /**
     * 坍落度
     */
    @NotBlank(message = "坍落度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String lands;

    /**
     * 水泥品种
     */
    @NotBlank(message = "水泥品种不能为空", groups = { AddGroup.class, EditGroup.class })
    private String cement;

    /**
     * 石子种类
     */
    @NotBlank(message = "石子种类不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stone;

    /**
     * 骨料粒径
     */
    @NotBlank(message = "骨料粒径不能为空", groups = { AddGroup.class, EditGroup.class })
    private String bonSize;

    /**
     * 外加剂要求
     */
    @NotBlank(message = "外加剂要求不能为空", groups = { AddGroup.class, EditGroup.class })
    private String addLiq;

    /**
     * 技术要求
     */
    @NotBlank(message = "技术要求不能为空", groups = { AddGroup.class, EditGroup.class })
    private String request;

    /**
     * 施工配合比
     */
    @NotBlank(message = "施工配合比不能为空", groups = { AddGroup.class, EditGroup.class })
    private String recipe;

    /**
     * 砂浆配合比
     */
    @NotBlank(message = "砂浆配合比不能为空", groups = { AddGroup.class, EditGroup.class })
    private String morRec;

    /**
     * 任务方量
     */
    @NotNull(message = "任务方量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long mete;

    /**
     * 浇筑时间
     */
    @NotNull(message = "浇筑时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date begTim;

    /**
     * 截止时间
     */
    @NotNull(message = "截止时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date endTim;

    /**
     * 任务调度
     */
    @NotBlank(message = "任务调度不能为空", groups = { AddGroup.class, EditGroup.class })
    private String attamper;

    /**
     * 标识
     */
    @NotBlank(message = "标识不能为空", groups = { AddGroup.class, EditGroup.class })
    private String flag;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
    private String note;

    /**
     * 车辆编号
     */
    @NotBlank(message = "车辆编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String vehicle;

    /**
     * 驾驶员
     */
    @NotBlank(message = "驾驶员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String driver;

    /**
     * 生产开始时刻
     */
    @NotNull(message = "生产开始时刻不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date prodTimB;

    /**
     * 生产结束时刻
     */
    @NotNull(message = "生产结束时刻不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date prodTimE;

    /**
     * 生产方量
     */
    @NotNull(message = "生产方量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long prodMete;

    /**
     * 砂浆方量
     */
    @NotNull(message = "砂浆方量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long morMete;

    /**
     * 生产盘数
     */
    @NotNull(message = "生产盘数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long pieCnt;

    /**
     * 累计车次
     */
    @NotNull(message = "累计车次不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long totVehs;

    /**
     * 累计方量
     */
    @NotNull(message = "累计方量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long totMete;

    /**
     * 质检员
     */
    @NotBlank(message = "质检员不能为空", groups = { AddGroup.class, EditGroup.class })
    private String qualitor;

    /**
     * 现场验收
     */
    @NotBlank(message = "现场验收不能为空", groups = { AddGroup.class, EditGroup.class })
    private String acceptor;

    /**
     * 操作工
     */
    @NotBlank(message = "操作工不能为空", groups = { AddGroup.class, EditGroup.class })
    private String operator;

    /**
     * 预警状态
     */
    @NotBlank(message = "预警状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private String warningStatus;

}
